﻿using Magicodes.ExporterAndImporter.Core;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;

namespace NP.BPMReportPlatform.SceneSalesTechDoc.Dtos
{
    public class SceneSalesTechDocOutput
    {
        /// <summary>
        /// 是否显示作废按钮
        /// </summary>
        [IEIgnore(IsExportIgnore = true)]
        public bool IsDelete { get; set;  }
        /// <summary>
        /// 单据详情链接
        /// </summary>
        [IEIgnore(IsExportIgnore = true)]
        public string Url { get; set; }
        /// <summary>
        /// 创建人
        /// </summary>
        [ExporterHeader(DisplayName = "创建人")]
        public string AddUserName { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        [ExporterHeader(DisplayName = "创建时间")]
        public DateTime AddTime { get; set; }

        /// <summary>
        /// 单号
        /// </summary>
        [ExporterHeader(DisplayName = "单号")]
        public string InstanceNumber { get; set; }

        /// <summary>
        /// 状态描述 正在进行 待评价 待改善 完成结案
        /// </summary>
        [ExporterHeader(DisplayName = "状态")]
        public string StateText { get; set; }

        /// <summary>
        /// 落地销售员
        /// </summary>
        [ExporterHeader(DisplayName = "落地销售员")]
        public string SalesPerson { get; set; }

        /// <summary>
        /// 事业部
        /// </summary>
        [ExporterHeader(DisplayName = "事业部")]
        public string Division { get; set; }

        /// <summary>
        /// 项目落地成本中心
        /// </summary>
        [ExporterHeader(DisplayName = "项目落地成本中心")]
        public string CostCenter { get; set; }

        /// <summary>
        /// 项目落地大区
        /// </summary>
        [ExporterHeader(DisplayName = "项目落地大区")]
        public string Factory { get; set; }

        /// <summary>
        /// 项目落地销售部
        /// </summary>
        [ExporterHeader(DisplayName = "项目落地销售部")]
        public string SalesDept { get; set; }

        /// <summary>
        /// 需求说明
        /// </summary>
        [ExporterHeader(DisplayName = "需求说明")]
        public string RequirementSpecification { get; set; }

        /// <summary>
        /// 需求类型
        /// </summary>
        [ExporterHeader(DisplayName = "需求类型")]
        public string RequirementType { get; set; }

        /// <summary>
        /// 城市等级
        /// </summary>
        [ExporterHeader(DisplayName = "城市等级")]
        public string CityLevel { get; set; }

        /// <summary>
        /// 虚拟费用
        /// </summary>
        [ExporterHeader(DisplayName = "虚拟费用")]
        public decimal VirtuallyCost { get; set; }

        /// <summary>
        /// 商机号
        /// </summary>
        [ExporterHeader(DisplayName = "商机号")]
        public string BusinessNum { get; set; }

        /// <summary>
        /// 项目名称
        /// </summary>
        [ExporterHeader(DisplayName = "项目名称")]
        public string ProjectName { get; set; }

        /// <summary>
        /// 项目所在地
        /// </summary>
        [ExporterHeader(DisplayName = "项目所在地")]
        public string ProjectLocation { get; set; }

        /// <summary>
        /// 项目金额
        /// </summary>
        [ExporterHeader(DisplayName = "项目金额")]
        public decimal XMYJJE { get; set; }

        /// <summary>
        /// 预计涂装总面积
        /// </summary>
        [ExporterHeader(DisplayName = "预计涂装总面积")]
        public decimal CoatingArea { get; set; }

        /// <summary>
        /// 项目操作模式
        /// </summary>
        [ExporterHeader(DisplayName = "项目操作模式")]
        public string OperaModel { get; set; }

        /// <summary>
        /// 客户编码
        /// </summary>
        [ExporterHeader(DisplayName = "客户编码")]
        public string CustomerCode { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        [ExporterHeader(DisplayName = "客户名称")]
        public string CustomerName { get; set; }

        /// <summary>
        /// 项目节点
        /// </summary>
        [ExporterHeader(DisplayName = "项目节点")]
        public string PhaseName { get; set; }

        /// <summary>
        /// 联系人
        /// </summary>
        [ExporterHeader(DisplayName = "联系人")]
        public string Linkman { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        [ExporterHeader(DisplayName = "联系电话")]
        public string Telephone { get; set; }

        /// <summary>
        /// 地址
        /// </summary>
        [ExporterHeader(DisplayName = "地址")]
        public string Address { get; set; }

        /// <summary>
        /// 大客户类型
        /// </summary>
        [ExporterHeader(DisplayName = "大客户类型")]
        public string BigCustomerType { get; set; }

        /// <summary>
        /// 大客户编码
        /// </summary>
        [ExporterHeader(DisplayName = "大客户编码")]
        public string BigCustomerCode { get; set; }

        /// <summary>
        /// 大客户名称
        /// </summary>
        [ExporterHeader(DisplayName = "大客户名称")]
        public string BigCustomerName { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [ExporterHeader(DisplayName = "备注")]
        public string Notes { get; set; }

        /// <summary>
        /// 重复原因
        /// </summary>
        [ExporterHeader(DisplayName = "重复原因")]
        public string RepeatReason { get; set; }

        /// <summary>
        /// 服务流程节点
        /// </summary>
        [ExporterHeader(DisplayName = "服务流程节点")]
        public string ProcessNode { get; set; }

        /// <summary>
        /// 服务对象
        /// </summary>
        [ExporterHeader(DisplayName = "服务对象")]
        public string ServiceObject { get; set; }

        /// <summary>
        /// 服务动作
        /// </summary>
        [ExporterHeader(DisplayName = "服务动作")]
        public string Action { get; set; }

        /// <summary>
        /// 要求到达时间
        /// </summary>
        [ExporterHeader(DisplayName = "要求到达时间")]
        public string ArrivedTime { get; set; }

        /// <summary>
        /// 需求描述
        /// </summary>
        [ExporterHeader(DisplayName = "需求描述")]
        public string RequirementDescription { get; set; }

        /// <summary>
        /// 产品线
        /// </summary>
        [ExporterHeader(DisplayName = "产品线")]
        public string ProductLine { get; set; }

        /// <summary>
        /// 体系
        /// </summary>
        [ExporterHeader(DisplayName = "体系")]
        public string System { get; set; }

        /// <summary>
        /// 详细体系
        /// </summary>
        [ExporterHeader(DisplayName = "详细体系")]
        public string DetailSystem { get; set; }

        /// <summary>
        /// 施工效果
        /// </summary>
        [ExporterHeader(DisplayName = "施工效果")]
        public string ConstructionEffect { get; set; }

        /// <summary>
        /// 颜色数量
        /// </summary>
        [ExporterHeader(DisplayName = "颜色数量")]
        public string ColorNum { get; set; }

        /// <summary>
        /// 单块面积
        /// </summary>
        [ExporterHeader(DisplayName = "单块面积")]
        public string SingleBlockArea { get; set; }

        /// <summary>
        /// 基层情况
        /// </summary>
        [ExporterHeader(DisplayName = "基层情况")]
        public string GrassrootsSituation { get; set; }

        /// <summary>
        /// 样板性质
        /// </summary>
        [ExporterHeader(DisplayName = "样板性质")]
        public string TemplateProperties { get; set; }

        /// <summary>
        /// 耗量要求
        /// </summary>
        [ExporterHeader(DisplayName = "耗量要求")]
        public string ConsumptionClaim { get; set; }

        /// <summary>
        /// 样漆依赖书号
        /// </summary>
        [ExporterHeader(DisplayName = "样漆依赖书号")]
        public string SamplePaintNo { get; set; }

        /// <summary>
        /// 是否劳务工
        /// </summary>
        [ExporterHeader(DisplayName = "是否劳务工")]
        public string IsLaborServices { get; set; }

        /// <summary>
        /// 劳务人员姓名
        /// </summary>
        [ExporterHeader(DisplayName = "劳务人员姓名")]
        public string LaborServicesName { get; set; }

        /// <summary>
        /// 预计服务周期
        /// </summary>
        [ExporterHeader(DisplayName = "预计服务周期")]
        public string EsimatedCycle { get; set; }

        /// <summary>
        /// 协商确认日期
        /// </summary>
        [ExporterHeader(DisplayName = "协商确认日期")]
        public DateTime? ConfirmDate { get; set; }

        /// <summary>
        /// 服务和结案人员
        /// </summary>
        [ExporterHeader(DisplayName = "服务和结案人员")]

        public string ServiceApproveName { get; set; }

        /// <summary>
        /// 处理意见
        /// </summary>
        [ExporterHeader(DisplayName = "处理意见")]
        public string DealerOpinion { get; set; }

        /// <summary>
        /// 拒绝原因
        /// </summary>
        [ExporterHeader(DisplayName = "拒绝原因")]
        public string RejectReason { get; set; }

        /// <summary>
        /// 不能按时完成原因
        /// </summary>
        [ExporterHeader(DisplayName = "不能按时完成原因")]
        public string FailReason { get; set; }

        #region 施工参数
        /// <summary>
        /// 项目体系
        /// </summary>
        [ExporterHeader(DisplayName = "项目体系")]
        public string PSystem { get; set; }

        /// <summary>
        /// 实际耗量
        /// </summary>
        [ExporterHeader(DisplayName = "实际耗量")]
        public string ActualConsumption { get; set; }

        /// <summary>
        /// 小样样板耗量
        /// </summary>
        [ExporterHeader(DisplayName = "小样样板耗量")]
        public string SampleConsumption { get; set; }

        /// <summary>
        /// 应用服务建议耗量
        /// </summary>
        [ExporterHeader(DisplayName = "应用服务建议耗量")]
        public string RecommendedConsumption { get; set; }

        /// <summary>
        /// 样板可大面复制性
        /// </summary>
        [ExporterHeader(DisplayName = "样板可大面复制性")]
        public string TemplateReplicability { get; set; }

        /// <summary>
        /// 其他施工参数
        /// </summary>
        [ExporterHeader(DisplayName = "其他施工参数")]
        public string OtherConstructionParameters { get; set; }
        #endregion

        /// <summary>
        /// 实际到达时间
        /// </summary>
        [ExporterHeader(DisplayName = "实际到达时间")]
        public string RealTime { get; set; }

        /// <summary>
        /// 实际服务周期
        /// </summary>
        [ExporterHeader(DisplayName = "实际服务周期")]
        public string RealCycle { get; set; }

        /// <summary>
        /// 服务动作(销售审批时间填写)
        /// </summary>
        [ExporterHeader(DisplayName = "服务动作(销售审批时间填写)")]
        public string SaleAction { get; set; }

        /// <summary>
        /// 预警异常描述
        /// </summary>
        [ExporterHeader(DisplayName = "预警异常描述")]
        public string WarnDescribe { get; set; }

        /// <summary>
        /// 服务人员意见
        /// </summary>
        [ExporterHeader(DisplayName = "服务人员意见")]
        public string Opinion { get; set; }

        /// <summary>
        /// 客户满意度评分
        /// </summary>
        [ExporterHeader(DisplayName = "客户满意度评分")]
        public double TotalScore { get; set; }

        /// <summary>
        /// 满意度
        /// </summary>
        [ExporterHeader(DisplayName = "满意度")]
        public string Satisfaction { get; set; }

        /// <summary>
        /// 满意度评价具体意见
        /// </summary>
        [ExporterHeader(DisplayName = "满意度评价具体意见")]
        public string SatisfactionSuggest { get; set; }

        /// <summary>
        /// 服务改善措施
        /// </summary>
        [ExporterHeader(DisplayName = "服务改善措施")]
        public string ImprovementMeasures { get; set; }

        #region 积分明细
        /// <summary>
        /// 评分项1
        /// </summary>
        [ExporterHeader(DisplayName = "评分项1")]
        public string Key1 { get; set; }

        /// <summary>
        /// 评分项
        /// </summary>
        [ExporterHeader(DisplayName = "评分值1")]
        public int Value1 { get; set; }

        /// <summary>
        /// 评分项
        /// </summary>
        [ExporterHeader(DisplayName = "评分项2")]
        public string Key2 { get; set; }

        /// <summary>
        /// 评分值
        /// </summary>
        [ExporterHeader(DisplayName = "评分值2")]
        public int Value2 { get; set; }

        /// <summary>
        /// 评分项
        /// </summary>
        [ExporterHeader(DisplayName = "评分项3")]
        public string Key3 { get; set; }

        /// <summary>
        /// 评分值
        /// </summary>
        [ExporterHeader(DisplayName = "评分值3")]
        public int Value3 { get; set; }

        /// <summary>
        /// 评分项
        /// </summary>
        [ExporterHeader(DisplayName = "评分项4")]
        public string Key4 { get; set; }

        /// <summary>
        /// 评分值
        /// </summary>
        [ExporterHeader(DisplayName = "评分值4")]
        public int Value4 { get; set; }

        /// <summary>
        /// 评分项
        /// </summary>
        [ExporterHeader(DisplayName = "评分项5")]
        public string Key5 { get; set; }

        /// <summary>
        /// 评分值
        /// </summary>
        [ExporterHeader(DisplayName = "评分值5")]
        public int Value5 { get; set; }


        #endregion

        /// <summary>
        /// 甲方是否参与
        /// </summary>
        [ExporterHeader(DisplayName = "甲方是否参与")]
        public string JoinJF { get; set; }

        /// <summary>
        /// 甲方姓名
        /// </summary>
        [ExporterHeader(DisplayName = "甲方姓名")]
        public string JFName { get; set; }

        /// <summary>
        /// 总包方是否参与
        /// </summary>
        [ExporterHeader(DisplayName = "总包方是否参与")]
        public string JoinZBF { get; set; }

        /// <summary>
        /// 总包方姓名
        /// </summary>
        [ExporterHeader(DisplayName = "总包方姓名")]
        public string ZBFName { get; set; }

        /// <summary>
        /// 监理方是否参与
        /// </summary>
        [ExporterHeader(DisplayName = "监理方是否参与")]
        public string JoinJLF { get; set; }

        /// <summary>
        /// 监理方姓名
        /// </summary>
        [ExporterHeader(DisplayName = "监理方姓名")]
        public string JLFName { get; set; }

        /// <summary>
        /// 施工单位是否参与
        /// </summary>
        [ExporterHeader(DisplayName = "施工单位是否参与")]
        public string JoinSGDW { get; set; }

        /// <summary>
        /// 施工单位姓名
        /// </summary>
        [ExporterHeader(DisplayName = "施工单位姓名")]
        public string SGDWName { get; set; }

        /// <summary>
        /// 其他是否参与
        /// </summary>
        [ExporterHeader(DisplayName = "其他是否参与")]
        public string JoinQT { get; set; }

        /// <summary>
        /// 其他姓名
        /// </summary>
        [ExporterHeader(DisplayName = "其他姓名")]
        public string QTName { get; set; }

        /// <summary>
        /// 数据来源
        /// </summary>
        [ExporterHeader(DisplayName = "数据来源")]
        public string Source { get; set; }
    }
}
